### Postgres connection profile

After installing Elementary's dbt package upon running `dbt deps`,
you can generate Elementary's profile for usage with `edr` by running the following command within your project:

```shell
dbt run-operation elementary.generate_elementary_cli_profile
```

The command will print to the terminal a partially filled template of the profile that's needed for `edr` to work.
[Fill in the missing authentication fields](https://docs.getdbt.com/reference/warehouse-setups/postgres-setup#profile-configuration)
in the output and copy it to `~/.dbt/profiles.yml`.

```yml Postgres
## POSTGRES ##
## By default, edr expects the profile name 'elementary'.      ##
## Configure the database and schema of elementary models.     ##
## Check where 'elementary_test_results' is to find it.        ##

elementary:
  outputs:
    default:
      type: postgres
      host: [hostname]
      user: [username]
      password: [password]
      port: [port]
      dbname: [database name]
      schema: [schema name] # elementary schema, usually [schema name]_elementary
      threads: [1 or more]
      keepalives_idle: 0 # default 0 seconds
      connect_timeout: 10 # default 10 seconds
      # search_path: public # optional, not recommended
      # role: [optional, set the role dbt assumes when executing queries]
      # sslmode: [optional, set the sslmode used to connect to the database]
```

We support the same format and connection methods (user password, key pair authentication, SSO) as dbt. Please refer to
dbt's documentation of [Postgres profile](https://docs.getdbt.com/reference/warehouse-setups/postgres-setup) for
further details.
